<!DOCTYPE html><html lang="en" data-theme="dark"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Yang's Harbor</title><meta name="keywords" content="技术,笔记,见解,生活"><meta name="author" content="✨YangSier✨,hobart.yang@qq.com"><meta name="copyright" content="✨YangSier✨"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#0d0d0d"><meta http-equiv="Cache-Control" content="no-transform"><meta http-equiv="Cache-Control" content="no-siteapp"><meta name="description" content="Space of Tech, Love and Thought">
<meta property="og:type" content="website">
<meta property="og:title" content="Yang&#39;s Harbor">
<meta property="og:url" content="https://discover304.top/index.html">
<meta property="og:site_name" content="Yang&#39;s Harbor">
<meta property="og:description" content="Space of Tech, Love and Thought">
<meta property="og:locale" content="en_US">
<meta property="og:image" content="https://discover304.top/img/head.jpg">
<meta property="article:author" content="✨YangSier✨">
<meta property="article:tag" content="技术">
<meta property="article:tag" content="笔记">
<meta property="article:tag" content="见解">
<meta property="article:tag" content="生活">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://discover304.top/img/head.jpg"><link rel="shortcut icon" href="/img/favicon.png"><link rel="canonical" href="https://discover304.top/"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//hm.baidu.com"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="preconnect" href="//zz.bdstatic.com"/><meta name="google-site-verification" content="ilqpfk3vkgzDNNikz_V37-DOvRyi5wv4Hoi_eyBqvTg"/><meta name="msvalidate.01" content="49D9A50CCF9744E17274791468EDB517"/><meta name="baidu-site-verification" content="code-V24KosyVh1"/><meta name="360-site-verification" content="bd8859c3d74dfa3e8aeee9db30c94bd2"/><meta name="yandex-verification" content="f28ec9bbd50c56f5"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.css" media="print" onload="this.media='all'"><script>var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?8030f6052f2fed6a4704d96619f090d6";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script><link rel="stylesheet" href="/css/font.css" media="print" onload="this.media='all'"><script>var GLOBAL_CONFIG = { 
  root: '/',
  algolia: undefined,
  localSearch: {"path":"search.xml","languages":{"hits_empty":"We didn't find any results for the search: ${query}"}},
  translate: {"defaultEncoding":2,"translateDelay":0,"msgToTraditionalChinese":"繁","msgToSimplifiedChinese":"簡"},
  noticeOutdate: {"limitDay":365,"position":"top","messagePrev":"It has been","messageNext":"days since the last update, the content of the article may be outdated."},
  highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true},
  copy: {
    success: 'Copy successfully',
    error: 'Copy error',
    noSupport: 'The browser does not support'
  },
  relativeDate: {
    homepage: false,
    post: false
  },
  runtime: 'days',
  date_suffix: {
    just: 'Just',
    min: 'minutes ago',
    hour: 'hours ago',
    day: 'days ago',
    month: 'months ago'
  },
  copyright: {"limitCount":200,"languages":{"author":"Author: ✨YangSier✨","link":"Link: ","source":"Source: Yang's Harbor","info":"Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source."}},
  lightbox: 'fancybox',
  Snackbar: {"chs_to_cht":"Traditional Chinese Activated Manually","cht_to_chs":"Simplified Chinese Activated Manually","day_to_night":"Dark Mode Activated Manually","night_to_day":"Light Mode Activated Manually","bgLight":"#ffc910","bgDark":"#02c3f6","position":"bottom-left"},
  source: {
    jQuery: 'https://cdn.jsdelivr.net/npm/jquery@latest/dist/jquery.min.js',
    justifiedGallery: {
      js: 'https://cdn.jsdelivr.net/npm/justifiedGallery/dist/js/jquery.justifiedGallery.min.js',
      css: 'https://cdn.jsdelivr.net/npm/justifiedGallery/dist/css/justifiedGallery.min.css'
    },
    fancybox: {
      js: 'https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@latest/dist/jquery.fancybox.min.js',
      css: 'https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@latest/dist/jquery.fancybox.min.css'
    }
  },
  isPhotoFigcaption: true,
  islazyload: true,
  isanchor: true
};

var saveToLocal = {
  set: function setWithExpiry(key, value, ttl) {
    const now = new Date()
    const expiryDay = ttl * 86400000
    const item = {
      value: value,
      expiry: now.getTime() + expiryDay,
    }
    localStorage.setItem(key, JSON.stringify(item))
  },

  get: function getWithExpiry(key) {
    const itemStr = localStorage.getItem(key)

    if (!itemStr) {
      return undefined
    }
    const item = JSON.parse(itemStr)
    const now = new Date()

    if (now.getTime() > item.expiry) {
      localStorage.removeItem(key)
      return undefined
    }
    return item.value
  }
}

// https://stackoverflow.com/questions/16839698/jquery-getscript-alternative-in-native-javascript
const getScript = url => new Promise((resolve, reject) => {
  const script = document.createElement('script')
  script.src = url
  script.async = true
  script.onerror = reject
  script.onload = script.onreadystatechange = function() {
    const loadState = this.readyState
    if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
    script.onload = script.onreadystatechange = null
    resolve()
  }
  document.head.appendChild(script)
})</script><script id="config_change">var GLOBAL_CONFIG_SITE = { 
  isPost: false,
  isHome: true,
  isHighlightShrink: false,
  isToc: false,
  postUpdate: '2023-04-25 19:02:57'
}</script><noscript><style type="text/css">
  #nav {
    opacity: 1
  }
  .justified-gallery img {
    opacity: 1
  }

  #recent-posts time,
  #post-meta time {
    display: inline !important
  }
</style></noscript><script>(function () {  window.activateDarkMode = function () {
    document.documentElement.setAttribute('data-theme', 'dark')
    if (document.querySelector('meta[name="theme-color"]') !== null) {
      document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
    }
  }
  window.activateLightMode = function () {
    document.documentElement.setAttribute('data-theme', 'light')
   if (document.querySelector('meta[name="theme-color"]') !== null) {
      document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
    }
  }
  const autoChangeMode = 'false'
  const t = saveToLocal.get('theme')
  if (autoChangeMode === '1') {
    const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches
    const isLightMode = window.matchMedia('(prefers-color-scheme: light)').matches
    const isNotSpecified = window.matchMedia('(prefers-color-scheme: no-preference)').matches
    const hasNoSupport = !isDarkMode && !isLightMode && !isNotSpecified
    if (t === undefined) {
      if (isLightMode) activateLightMode()
      else if (isDarkMode) activateDarkMode()
      else if (isNotSpecified || hasNoSupport) {
        const now = new Date()
        const hour = now.getHours()
        const isNight = hour <= 6 || hour >= 18
        isNight ? activateDarkMode() : activateLightMode()
      }
      window.matchMedia('(prefers-color-scheme: dark)').addListener(function (e) {
        if (saveToLocal.get('theme') === undefined) {
          e.matches ? activateDarkMode() : activateLightMode()
        }
      })
    } else if (t === 'light') activateLightMode()
    else activateDarkMode()
  } else if (autoChangeMode === '2') {
    const now = new Date()
    const hour = now.getHours()
    const isNight = hour <= 6 || hour >= 18
    if (t === undefined) isNight ? activateDarkMode() : activateLightMode()
    else if (t === 'light') activateLightMode()
    else activateDarkMode()
  } else {
    if (t === 'dark') activateDarkMode()
    else if (t === 'light') activateLightMode()
  }const asideStatus = saveToLocal.get('aside-status')
if (asideStatus !== undefined) {
   if (asideStatus === 'hide') {
     document.documentElement.classList.add('hide-aside')
   } else {
     document.documentElement.classList.remove('hide-aside')
   }
}})()</script><meta name="generator" content="Hexo 6.3.0"><link rel="alternate" href="/atom.xml" title="Yang's Harbor" type="application/atom+xml">
</head><body><div id="loading-box"><div class="loading-left-bg"></div><div class="loading-right-bg"></div><div class="spinner-box"><div class="configure-border-1"><div class="configure-core"></div></div><div class="configure-border-2"><div class="configure-core"></div></div><div class="loading-word">Loading...</div></div></div><div id="web_bg"></div><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="author-avatar"><img class="avatar-img" data-lazy-src="/img/head.jpg" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="site-data"><div class="data-item is-center"><div class="data-item-link"><a href="/archives/"><div class="headline">Articles</div><div class="length-num">243</div></a></div></div><div class="data-item is-center"><div class="data-item-link"><a href="/tags/"><div class="headline">Tags</div><div class="length-num">88</div></a></div></div><div class="data-item is-center"><div class="data-item-link"><a href="/categories/"><div class="headline">Categories</div><div class="length-num">23</div></a></div></div></div><hr/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> Home</span></a></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> Links</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> About</span></a></div><div class="menus_item"><a class="site-page" href="javascript:void(0);"><i class="fa-fw fas fa-list"></i><span> Articles</span><i class="fas fa-chevron-down expand"></i></a><ul class="menus_item_child"><li><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> Archive</span></a></li><li><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> Category</span></a></li><li><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> Tags</span></a></li></ul></div></div></div></div><div id="body-wrap"><header class="full_page" id="page-header" style="background-image: url(https://image.discover304.top/wallpaper/anime-anime-girls-original-characters-short-hair-wallpaper-preview.jpg?imageView2/2/h/600)"><nav id="nav"><span id="blog_name"><a id="site-name" href="/">Yang's Harbor</a></span><div id="menus"><div id="search-button"><a class="site-page social-icon search"><i class="fas fa-search fa-fw"></i><span> Search</span></a></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> Home</span></a></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> Links</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> About</span></a></div><div class="menus_item"><a class="site-page" href="javascript:void(0);"><i class="fa-fw fas fa-list"></i><span> Articles</span><i class="fas fa-chevron-down expand"></i></a><ul class="menus_item_child"><li><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> Archive</span></a></li><li><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> Category</span></a></li><li><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> Tags</span></a></li></ul></div></div><div id="toggle-menu"><a class="site-page"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="site-info"><h1 id="site-title">Yang's Harbor</h1><div id="site-subtitle"><span id="subtitle"></span></div><div id="site_social_icons"><a class="social-icon" href="https://github.com/Discover304" target="_blank" title="Github"><i class="fab fa-github"></i></a><a class="social-icon" href="https://blog.csdn.net/Discover304" target="_blank" title="CSDN"><i class="fa-solid fa-c"></i></a><a class="social-icon" href="https://www.zhihu.com/people/discover-56-86-75" target="_blank" title="知乎"><i class="fa-brands fa-zhihu"></i></a><a class="social-icon" href="mailto:hobart.yang@qq.com" target="_blank" title="Email"><i class="fas fa-envelope"></i></a><a class="social-icon" href="https://jq.qq.com/?_wv=1027&amp;k=EaGddTQg" target="_blank" title="QQ"><i class="fa-brands fa-qq"></i></a></div></div><div id="waves"><svg class="waves" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" viewBox="0 24 150 28" preserveAspectRatio="none" shape-rendering="auto"><defs><path id="gentle-wave" d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z"></path></defs><g class="parallax"><use href="#gentle-wave" x="48" y="0"></use><use href="#gentle-wave" x="48" y="0"></use><use href="#gentle-wave" x="48" y="0"></use><use href="#gentle-wave" x="48" y="0"></use></g></svg></div><div id="scroll-down"><i class="fas fa-angle-down scroll-down-effects"></i></div></header><main class="layout" id="content-inner"><div class="recent-posts" id="recent-posts"><div class="recent-post-item" style="width:100%;height:auto;float:left;padding:5px;flex-wrap:wrap;justify-content : center;flex-direction: row; "><figure class="gallery-group" id="color-card"><img class="gallery-group-img loaded" src="https://image.discover304.top/ai/dl/space_work.jpg?imageView2/2/h/300" data-ll-status="loaded"><figcaption style="background-image: linear-gradient(to bottom,rgba(0, 0, 0, 0.618) 25%,rgba(16,16,16,0) 100%"><div class="gallery-group-name" style="font-size: 1rem;">🔥人工智能</div><p>笔记和资料，涉及到深度学习、自动驾驶等领域。</p><a href="/tags/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/"></a></figcaption></figure><figure class="gallery-group" id="color-card"><img class="gallery-group-img loaded" src="https://image.discover304.top/NEKOYA_S.S.S. Doll [Pallas].jfif?imageView2/2/h/300" data-ll-status="loaded"><figcaption style="background-image: linear-gradient(to bottom,rgba(0, 0, 0, 0.618) 25%,rgba(16,16,16,0) 100%"><div class="gallery-group-name" style="font-size: 1rem;">🔥ROS笔记</div><p>ROS机器人框架笔记。Beginer Friendly</p><a href="/tags/ROS/"></a></figcaption></figure><figure class="gallery-group" id="color-card"><img class="gallery-group-img loaded" src="https://image.discover304.top/python_future.jpg?imageView2/2/h/300" data-ll-status="loaded"><figcaption style="background-image: linear-gradient(to bottom,rgba(0, 0, 0, 0.618) 25%,rgba(16,16,16,0) 100%"><div class="gallery-group-name" style="font-size: 1rem;">✅Python教程</div><p>从0到1，在深入人工智能的全套Python笔记。</p><a href="/tags/Python/"></a></figcaption></figure><figure class="gallery-group" id="color-card"><img class="gallery-group-img loaded" src="https://image.discover304.top/miku-king-white-theme.jpg?imageView2/2/h/300" data-ll-status="loaded"><figcaption style="background-image: linear-gradient(to bottom,rgba(0, 0, 0, 0.618) 25%,rgba(16,16,16,0) 100%"><div class="gallery-group-name" style="font-size: 1rem;">❤️经验经历</div><p>过往的感悟和思考。</p><a href="/tags/%E7%BB%8F%E9%AA%8C/"></a></figcaption></figure><figure class="gallery-group" id="color-card"><img class="gallery-group-img loaded" src="https://image.discover304.top/factory.jpg?imageView2/2/h/300" data-ll-status="loaded"><figcaption style="background-image: linear-gradient(to bottom,rgba(0, 0, 0, 0.618) 25%,rgba(16,16,16,0) 100%"><div class="gallery-group-name" style="font-size: 1rem;">✨碎片技术</div><p>学习工作中遇到的很赞的技术碎片，整理好了。</p><a href="/tags/%E6%8A%80%E6%9C%AF/"></a></figcaption></figure><figure class="gallery-group" id="color-card"><img class="gallery-group-img loaded" src="https://image.discover304.top/gaoda.jpg?imageView2/2/h/300" data-ll-status="loaded"><figcaption style="background-image: linear-gradient(to bottom,rgba(0, 0, 0, 0.618) 25%,rgba(16,16,16,0) 100%"><div class="gallery-group-name" style="font-size: 1rem;">✨学习积累</div><p>相对于碎片技术的，已经沉淀为自己的资本的内容。</p><a href="/tags/学习/"></a></figcaption></figure></div><div class="recent-post-item" style="height:0px;clear:both;margin-top: 0px;"></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2022/02/21/000-intresting-things/" title="【整理】有趣的资料和网站">     <img class="post_bg" data-lazy-src="https://image.discover304.top/info-girl-see-cropped.jpg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【整理】有趣的资料和网站"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/02/21/000-intresting-things/" title="【整理】有趣的资料和网站">【整理】有趣的资料和网站</a><div class="article-meta-wrap"><span class="article-meta"><i class="fas fa-thumbtack article-meta__icon sticky"></i><span class="sticky">Sticky</span><span class="article-meta__separator">|</span></span><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-02-21T03:09:09.840Z" title="Created 2022-02-21 11:09:09">2022-02-21</time></span></div><div class="content">网站
Sphinx: Sphinx is a tool that makes it easy to create intelligent and beautiful documentation, written by Georg Brandl and licensed under the BSD license.
Taichi: Build world-class open-source graphics infrastructure and cloud platforms, making graphics computing benefit everyone.
Taitopia: The world’s first cloud-native 3D DCC platform. Create and share inspiring artworks with anyone, from anywhere, at any time.
Dasher v6：An information-efficient text-entry interface driven by natural contin ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2023/04/24/2023q1/173-nginx-docker-blog-page-depoly/" title="【模板】Hexo Docker Nginx 个人博客服务器部署">     <img class="post_bg" data-lazy-src="https://image.discover304.top/s16001804242023.png?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【模板】Hexo Docker Nginx 个人博客服务器部署"></a></div><div class="recent-post-info"><a class="article-title" href="/2023/04/24/2023q1/173-nginx-docker-blog-page-depoly/" title="【模板】Hexo Docker Nginx 个人博客服务器部署">【模板】Hexo Docker Nginx 个人博客服务器部署</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2023-04-24T06:39:24.000Z" title="Created 2023-04-24 14:39:24">2023-04-24</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E6%8A%80%E6%9C%AF/">技术</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%8F%82%E8%80%83/">参考</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E6%A8%A1%E6%9D%BF/">模板</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%B5%84%E6%96%99/">资料</a></span></div><div class="content">🤖 TLDR By ChatGPT本指南提供了在服务器上设置Git仓库、将本地Hexo页面推送到服务器仓库、在服务器上创建Nginx配置文件以及在服务器上运行Nginx容器的方法。

在服务器上的指定路径下运行git init初始化Git仓库。
参考Easy Hexo指南，使用提供的配置将本地Hexo页面推送到服务器仓库。
提供的配置在服务器上创建Nginx配置文件，包括MIME类型、日志、SSL和HTTP和HTTPS的服务器块。
使用官方Docker镜像在服务器上运行Nginx容器。使用docker pull nginx拉取镜像，然后使用提供的命令运行容器。

请确保用适当的值替换所有&lt;todo: comment&gt;占位符。

There are several &lt;todo: comment&gt; need to be replaced.
✨Initialise git repository on server123cd &lt;todo: the path for repository&gt;git init

✨Push local hexo pages to ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2022/12/09/2022q4/169-new-r/" title="R: Getting Into Project of R">     <img class="post_bg" data-lazy-src="https://image.discover304.top/blog-img/s18350812112022.png" onerror="this.onerror=null;this.src='/img/404.png'" alt="R: Getting Into Project of R"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/12/09/2022q4/169-new-r/" title="R: Getting Into Project of R">R: Getting Into Project of R</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-12-09T09:44:06.000Z" title="Created 2022-12-09 17:44:06">2022-12-09</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E6%8A%80%E6%9C%AF/">技术</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E6%89%AB%E7%9B%B2/">扫盲</a></span></div><div class="content">:star: what is an r project include in r studio?An R project in RStudio is a self-contained directory that contains all the files and resources associated with a specific R project. This includes the R code files, data files, output files, and any additional packages or libraries needed for the project. RStudio automatically creates a new R project for each project you start, and allows you to easily switch between different projects within the RStudio interface. R projects in RStudio also provi ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2022/09/22/2022q3/165-clubnotice/" title="PAR Group PLANING BOOK">     <img class="post_bg" data-lazy-src="https://image.discover304.top/blog-img/s07171809222022.png?imageView2/2/h/400" onerror="this.onerror=null;this.src='/img/404.png'" alt="PAR Group PLANING BOOK"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/09/22/2022q3/165-clubnotice/" title="PAR Group PLANING BOOK">PAR Group PLANING BOOK</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-09-21T23:15:04.000Z" title="Created 2022-09-22 07:15:04">2022-09-22</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E8%B5%84%E6%96%99/">资料</a></span></div><div class="content">
Project Name: GO PRO BROPlanning Book Version: v0.1

BackgroundToday, undergraduate students are looking for opportunities to gain the experience of research. But some of them may head to the public, and start a summer school, which is too expensive for undergraduate students, and not fair for those suffer in poverty. Besides, things like summer school is for student in high or middle school who have a strong willing to start their research career but don’t have someone can help or teach them.  ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2022/06/09/2022q2/163-paper-writing-tips/" title="【指导】科研工作团队协作避坑指南">     <img class="post_bg" data-lazy-src="https://image.discover304.top/blog-img/s10431309162022.png" onerror="this.onerror=null;this.src='/img/404.png'" alt="【指导】科研工作团队协作避坑指南"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/06/09/2022q2/163-paper-writing-tips/" title="【指导】科研工作团队协作避坑指南">【指导】科研工作团队协作避坑指南</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-06-09T07:51:27.000Z" title="Created 2022-06-09 15:51:27">2022-06-09</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%B5%84%E6%96%99/">资料</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%BB%8F%E9%AA%8C/">经验</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%A7%91%E7%A0%94/">科研</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AE%A1%E7%90%86/">管理</a></span></div><div class="content">
本文站在第三方的角度审视我在2022年的团队科研经历，一来是自省，二来是帮助更多同学更好的开始自己的科研生活。

科研工作是围绕一个科学问题展开的探索，只要是探索就有成功，有失败。而人工智能的科研探索，永远是以失败为主旋律。再详尽的计划，再强大的开发能力，都无法保证实验不出现问题。和数学条理清晰的证明不一样，人工智能深度学习的黑盒性质，使科研工作的展开注定磕磕绊绊。
:star:对科研成果的要求不同会议或期刊的收录倾向不同，例如CVPR喜欢新应用，NeurlPS喜欢理论的突破，AAAI相对就比较杂食，但对于一篇好文章的要求无非如下：

研究点新颖，要做到读者听上去就想要复现一下。
背景资料详实，需要找老前辈讨论。
论证的严谨，参考文献充足且逻辑自洽。
实验完备且充分，多角度多任务多场景（多数据集、多网络适配、多应用）
文章的行文规范且流畅，体现一个团队的积累。


:star:研究的三个板块对于一个课题组，如何进行人员的组织是一定要考虑的问题。任何一个错误的分工，或者一个模糊不清的角色定位都会造成课题推进的困难。接下来我们从三个主要的板块，展开讨论，科研团队中的大家如何扮演好自己的角 ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2022/06/09/2022q2/162-mendeley-recup/" title="【指导】Mendeley文献管理工具教程">     <img class="post_bg" data-lazy-src="https://image.discover304.top/blog-img/s10445209162022.png" onerror="this.onerror=null;this.src='/img/404.png'" alt="【指导】Mendeley文献管理工具教程"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/06/09/2022q2/162-mendeley-recup/" title="【指导】Mendeley文献管理工具教程">【指导】Mendeley文献管理工具教程</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-06-09T07:13:25.000Z" title="Created 2022-06-09 15:13:25">2022-06-09</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E8%B5%84%E6%96%99/">资料</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%A7%AF%E7%B4%AF/">积累</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%BB%8F%E9%AA%8C/">经验</a></span></div><div class="content">:star:为什么需要文献管理工具？作为一名热爱学术的研究生，每天要阅读许多篇论文，每篇论文要经历繁琐的检索、下载、阅读的过程；在读了许多文献之后，想去回顾一下以前读过的文章，却发现面对着电脑中各种文献的文件夹，怎么也找不到想要找的文章了。这时候就需要一个文献管理工具，管理你的成千上百的文献，让你在写论文时很顺手地找到想要的文献。
:star:为什么选用Mendeley？:star:Mendeley的下载Mendeley有两个版本，官方页面上的是Mendeley Manager，但是异常难用。这里建议使用Mendeley Desktop配置本地论文仓库，也可以通过设置云端同步实现跨平台。
:star:Mendeley的基本使用:stars:使用界面
:stars:【重点】配置本地仓库
:stars:配置云端同步注：不推荐使用云端同步，第一Mendeley的空间有限，第二没有必要。如有需要，可以尝试Mendeley的第三方云端仓库同步。
:stars:Mendeley汉化可以直接下载绿色网传中文版，暂时没找到汉化补丁。
:star:Mendeley常用功能:stars:【重点】查询&#x ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2022/04/15/2022q2/159-gpu-get/" title="【星光03】GPU多卡排队/抢占/贪心脚本，实验室必备">     <img class="post_bg" data-lazy-src="https://image.discover304.top/blog-img/s10063904152022-202241510640.png" onerror="this.onerror=null;this.src='/img/404.png'" alt="【星光03】GPU多卡排队/抢占/贪心脚本，实验室必备"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/04/15/2022q2/159-gpu-get/" title="【星光03】GPU多卡排队/抢占/贪心脚本，实验室必备">【星光03】GPU多卡排队/抢占/贪心脚本，实验室必备</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-04-15T00:50:28.000Z" title="Created 2022-04-15 08:50:28">2022-04-15</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E6%8A%80%E6%9C%AF/">技术</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%BB%8F%E5%8E%86/">经历</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%A7%AF%E7%B4%AF/">积累</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E6%95%B4%E7%90%86/">整理</a></span></div><div class="content">经常有小伙伴和我抱怨说拿不到计算资源，于是这不就来了吗。这是一个后台GPU排队脚本，主要是为了解决实验室中的显卡使用&#x2F;占用问题。
✨阅前须知
Talk is cheap, show me the code. 废话少说，直接给我代码！脚本代码跳转链接：脚本在这里

说给小白白的一些话：

本文只针对Nvidia显卡，依赖nvidia-smi查看显卡状态的命令。
本文提出的方法使用的是python作为终端脚本的启动器，默认python即可。
本文的方法是多显卡的贪心脚本，一个空窗期内有几张显卡就会用几张，小心使用。
本文方法无法实现显卡累加的操作，如果你想要那种闲下一张卡就抢过来的脚本，可以试试在本文的基础上进行修改。


✨预备知识对理解GPU多卡排队脚本有帮助的内容：

在服务器上训练人工智能模型的时候往往是启动一个后台任务，启动后台任务的方法如下： 12#!/bin/bashnohup 【命令】 &amp;
对于使用GPU的后台任务，如果没有好好的退出，会一直占用GPU资源。所以需要执行如下命令退出： 123456# 执行以下命令在全部线程中寻找你的后台线程：ps -ef  ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2022/04/03/2022q2/158-lets-write-paper/" title="论文咋水">     <img class="post_bg" data-lazy-src="https://image.discover304.top/blog-img/s11212309162022.png?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="论文咋水"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/04/03/2022q2/158-lets-write-paper/" title="论文咋水">论文咋水</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-04-03T12:02:30.000Z" title="Created 2022-04-03 20:02:30">2022-04-03</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E8%AE%B0%E5%BD%95/">记录</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AD%94%E7%96%91/">答疑</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%BB%8F%E9%AA%8C/">经验</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%BB%8F%E7%90%86/">经理</a></span></div><div class="content">论文和自己的笔记不一样，和我成天写的博客类似，都是要提供最多的相关信息，便于读者理解。
只要有给小白讲明白这个点的想法，就不愁没得写
而且大概率会超页数。超了删，好删；少了加，就难喽
至少比你低一两个年级的同学能看懂或者不是很了解天体物理的量子物理教授能看懂
水论文小技巧1：谷歌翻译，中英或者英法互译，来回译上几轮，字数就多了
水论文小技巧2：分析文章观点展开逻辑，力求每一个观点的逻辑展开流程一致。之后只要多一环逻辑，全文每一块都可以多这一环
水论文小技巧3：大量公式，表格，图片
水论文小技巧4：观点前置，最后重复观点，强调重点
</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2022/03/28/2022q1/158-gnn-recup/" title="GNN Recap">     <img class="post_bg" data-lazy-src="https://image.discover304.top/blog-img/s11155709162022.png" onerror="this.onerror=null;this.src='/img/404.png'" alt="GNN Recap"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/03/28/2022q1/158-gnn-recup/" title="GNN Recap">GNN Recap</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-03-28T05:16:05.000Z" title="Created 2022-03-28 13:16:05">2022-03-28</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E6%80%9D%E8%80%83/">思考</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/GNN/">GNN</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/">深度学习</a></span></div><div class="content">A Gentle Introduction to Graph Neural Networks
为什么使用GNN，因为相关性是一个网络。
邻接矩阵是GNN要得到的东西，但是相关性的邻接矩阵不就是相关性矩阵吗
所以可以直接计算相关性矩阵来实现，但是这种做法是十分耗时的。
而且也只能是起到attention的作用，增强了某些信息。
通过增加空白节点作为胶水的形式，融合模态。
思考：预训练编码器（信源编码），然后通过任意DNN预测模态间特征的邻接矩阵（融合指导），使用GNN预测每一个特征上的附加信息（信道编码）。
注：附加信息量与初始信息量的比例，等于多个模态编码后的码长之比。
</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2022/03/22/2022q1/156-AP-mAP/" title="【AI】目标检测任务的评估指标：AP、mAP">     <img class="post_bg" data-lazy-src="https://image.discover304.top/aimmingMolisha.jpg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【AI】目标检测任务的评估指标：AP、mAP"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/03/22/2022q1/156-AP-mAP/" title="【AI】目标检测任务的评估指标：AP、mAP">【AI】目标检测任务的评估指标：AP、mAP</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-03-22T05:32:11.000Z" title="Created 2022-03-22 13:32:11">2022-03-22</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E6%8A%80%E6%9C%AF/">技术</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%8F%82%E8%80%83/">参考</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/">人工智能</a></span></div><div class="content">史上最易懂AP、mAP计算解析
</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2022/03/21/2022q1/155-python-timer/" title="【星光05】全局计时器">     <img class="post_bg" data-lazy-src="https://image.discover304.top/xingchen_qqren.png?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【星光05】全局计时器"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/03/21/2022q1/155-python-timer/" title="【星光05】全局计时器">【星光05】全局计时器</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-03-21T02:39:09.000Z" title="Created 2022-03-21 10:39:09">2022-03-21</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E6%8A%80%E6%9C%AF/">技术</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%A7%AF%E7%B4%AF/">积累</a></span></div><div class="content">这是一个记录时间节点和代码运行顺序的计时器，可以在代码任意位置调用记录运行时间，保存到本地 .csv 文件。
✨代码部分创建 timer.py 文件，创建 GlobalTimer 类。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960import time as tfrom typing import Dict, Listimport pandas as pdclass GlobalTimer:    &quot;&quot;&quot;    全局计时器，跨文件实现代码的时间节点记录。    &quot;&quot;&quot;    __time_dict: Dict[str, List[float or None]] = &#123;&#125;  # 时间存储字典    time_slice_count: int = 0  # 时间切片计数    def __init__(self):        pas ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2022/03/20/2022q1/154-MMDetection3d-explain/" title="【星光04】Mmdetection3dlab 使用指南">     <img class="post_bg" data-lazy-src="https://image.discover304.top/blog-img/s17293303202022-2022320172935.png?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【星光04】Mmdetection3dlab 使用指南"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/03/20/2022q1/154-MMDetection3d-explain/" title="【星光04】Mmdetection3dlab 使用指南">【星光04】Mmdetection3dlab 使用指南</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-03-20T13:15:15.000Z" title="Created 2022-03-20 21:15:15">2022-03-20</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E6%8A%80%E6%9C%AF/">技术</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/">人工智能</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Docker/">Docker</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E6%95%99%E7%A8%8B/">教程</a></span></div><div class="content">
MMDetection3D 是一个基于 PyTorch 的目标检测开源工具箱, 下一代面向3D检测的平台对安装 MMDetection3D有问题的同学可以看：【星光02】MMDetection3D 目标检测框架的 Docker 环境制作和改良

✨本文结合官方文档，梳理了基于 mmdet3d 开发人工智能模型的基本流程，整理相关的代码和小工具。如遇任何问题，可以查阅官方文档，MMDetection3D 的官方文档还是写得很好的（就是有一些多模态的代码跑不通，本文会注释部分问题命令）
一、数据预处理官方对数据集预处理的文档：3D 目标检测 KITTI 数据集，流程如下：
解压所有 Kitti 数据集，并将文件按如下方式组织：
12345678910111213mmdetection3d├── data|   ├── kitti|   |   ├── ImageSets|   |   ├── testing|   │   │   ├── calib|   │   │   ├── image_2|   │   │   ├── velodyne|   |   ├── training|    ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2022/03/19/2022q1/151-mmdetection3dlab/" title="【开发框架】Mmdetection3dlab Docker 环境改良和制作">     <img class="post_bg" data-lazy-src="https://image.discover304.top/blog-img/s17293303202022-2022320172935.png?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【开发框架】Mmdetection3dlab Docker 环境改良和制作"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/03/19/2022q1/151-mmdetection3dlab/" title="【开发框架】Mmdetection3dlab Docker 环境改良和制作">【开发框架】Mmdetection3dlab Docker 环境改良和制作</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-03-19T06:36:38.000Z" title="Created 2022-03-19 14:36:38">2022-03-19</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E6%8A%80%E6%9C%AF/">技术</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/">人工智能</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Docker/">Docker</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E6%95%99%E7%A8%8B/">教程</a></span></div><div class="content">✨本文提供了一套完整的基于Docker的目标检测研究环境搭建思路，对官方教程进行了一定的修改和补充。同时随文提供SSH和Jupyter server实践，均为可用状态，提供了可靠资料给小伙伴们探索。
注：官方docker适合运行框架内的模型，本文的修改的docker适合对模型进行修改和创新，对使用者的要求略高。
全流程12345678910111. 下载需要的资源   1. 下载 Kitti 数据集   2. 下载 MMDetection3D 代码   3. 下载需要的模型参数2. 制作开发环境   1. 按说明将预训练模型参数和数据放到相应路径下   2. 编辑 Dockerfile   3. 制作 Docker 镜像   4. 创建 Docker 容器3. 开始使用x. 框架解析

官方文档：MMDetection3D
一. 下载需要的资源1. 下载 Kitti 数据集官方网址：3D Object Detection Evaluation 2017。参见博文：KITTI数据集下载及解析，内附百度云盘链接。

2. 下载 MMDetection3D 代码
官方代码仓库：https:/ ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2022/03/17/2022q1/150-python%E7%94%9F%E6%88%90%E6%9F%90%E4%B8%AA%E6%96%87%E4%BB%B6%E5%A4%B9%E7%9A%84%E7%9B%AE%E5%BD%95%E6%A0%91/" title="【Python】生成某个文件夹的目录树">     <img class="post_bg" data-lazy-src="https://image.discover304.top/blog-img/s13381903222022-2022322133821.png" onerror="this.onerror=null;this.src='/img/404.png'" alt="【Python】生成某个文件夹的目录树"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/03/17/2022q1/150-python%E7%94%9F%E6%88%90%E6%9F%90%E4%B8%AA%E6%96%87%E4%BB%B6%E5%A4%B9%E7%9A%84%E7%9B%AE%E5%BD%95%E6%A0%91/" title="【Python】生成某个文件夹的目录树">【Python】生成某个文件夹的目录树</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-03-17T04:06:23.000Z" title="Created 2022-03-17 12:06:23">2022-03-17</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E6%8A%80%E6%9C%AF/">技术</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%A7%AF%E7%B4%AF/">积累</a></span></div><div class="content">1. 使用背景一些情况下我们想要生成某个工程文件夹的文件目录，写在文档里面逐一说明每个文件的功能，这是如果能自动生成文件树就是一件很方便的事。
2. 代码在如下代码中，只需要给定path目录就可以。
123456789101112131415161718from pathlib import Pathtree_str = &#x27;&#x27;def generate_tree(pathname, n=0):    global tree_str    if pathname.is_file():        tree_str += &#x27;    |&#x27; * n + &#x27;-&#x27; * 4 + pathname.name + &#x27;\n&#x27;    elif pathname.is_dir():        tree_str += &#x27;    |&#x27; * n + &#x27;-&#x27; * 4 + \            str(pathname.relative_to(pathname.parent)) + &#x27 ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2022/03/17/2022q1/149-powershell-restart-key-program/" title="【方法】使用Powershell重启关键程序">     <img class="post_bg" data-lazy-src="https://image.discover304.top/blog-img/s11121909162022.png" onerror="this.onerror=null;this.src='/img/404.png'" alt="【方法】使用Powershell重启关键程序"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/03/17/2022q1/149-powershell-restart-key-program/" title="【方法】使用Powershell重启关键程序">【方法】使用Powershell重启关键程序</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-03-17T01:57:41.000Z" title="Created 2022-03-17 09:57:41">2022-03-17</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E6%8A%80%E6%9C%AF/">技术</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%A7%AF%E7%B4%AF/">积累</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%BB%8F%E9%AA%8C/">经验</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/PowerShell/">PowerShell</a></span></div><div class="content">参考：https://www.coder.work/article/6671779  
1234tasklist | findstr cmdStart-Process cmd.exe -WindowStyle HiddenStop-Process -Id 11172; Stop-Process -Id 11172; Start-Process cmd.exe -WindowStyle Hidden

; ：同一行写多句| ：管道，前一个的输出到后一个的输入
</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2022/03/15/2022q1/148-torch-install/" title="使用 Whl 安装 Pytorch 施工中~">     <img class="post_bg" data-lazy-src="https://image.discover304.top/blog-img/s11100109162022.png" onerror="this.onerror=null;this.src='/img/404.png'" alt="使用 Whl 安装 Pytorch 施工中~"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/03/15/2022q1/148-torch-install/" title="使用 Whl 安装 Pytorch 施工中~">使用 Whl 安装 Pytorch 施工中~</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-03-15T04:47:41.000Z" title="Created 2022-03-15 12:47:41">2022-03-15</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E8%AE%B0%E5%BD%95/">记录</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%B5%84%E6%96%99/">资料</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%85%A5%E9%97%A8/">入门</a></span></div><div class="content">
whl 大法好！

1pip install torch==1.11.0+cu115 torchvision==0.12.0+cu115 -f https://download.pytorch.org/whl/torch_stable.html

jupyter notebook 中的ipykernel内核是jupyter notebook的python，尽量还是使用系统环境中的默认内核。
12345&gt;&gt;&gt; torch.save(bn.state_dict(), &#x27;bn.pt&#x27;)&gt;&gt;&gt; bn_state_dict = torch.load(&#x27;bn.pt&#x27;)&gt;&gt;&gt; new_bn = torch.nn.BatchNorm1d(3, track_running_stats=True)&gt;&gt;&gt; new_bn.load_state_dict(bn_state_dict)&lt;All keys matched successfully&gt;

https://www.w3cschoo ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2022/03/14/2022q1/147-pd-merge/" title="【Python星光】pandas 中 Merge 函数的参数 How 超详细解释">     <img class="post_bg" data-lazy-src="https://image.discover304.top/xingchen_qqren.png?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【Python星光】pandas 中 Merge 函数的参数 How 超详细解释"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/03/14/2022q1/147-pd-merge/" title="【Python星光】pandas 中 Merge 函数的参数 How 超详细解释">【Python星光】pandas 中 Merge 函数的参数 How 超详细解释</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-03-14T02:16:09.000Z" title="Created 2022-03-14 10:16:09">2022-03-14</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E6%8A%80%E6%9C%AF/">技术</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%A7%AF%E7%B4%AF/">积累</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%9F%BA%E7%A1%80/">基础</a></span></div><div class="content">
:four_leaf_clover:碎碎念:four_leaf_clover:Hello米娜桑，这里是英国留学中的杨丝儿。我的博客的关键词集中在算法、机器人、人工智能、数学等等，点个关注吧，持续高质量输出中。:cherry_blossom:唠嗑QQ群：兔叽的魔术工房 (942848525):star:B站账号：杨丝儿今天也在科学修仙（UP主跨站求个关注）


在pandas中如果我们想将两个表格按照某一主键合并，我们需要用到merge函数。
1pd.merge(dataframe_1,dataframe_2,how=&quot;inner&quot;)

参数how有四个选项，分别是：inner、outer、left、right。
inner是merge函数的默认参数，意思是将dataframe_1和dataframe_2两表中主键一致的行保留下来，然后合并列。
outer是相对于inner来说的，outer不会仅仅保留主键一致的行，还会将不一致的部分填充Nan然后保留下来。
然后是left和right，首先为什么是left和right，left指代的是输入的时候左边的表格即data ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2022/03/02/2022q1/146-plan-study-info-theory/" title="【学习计划】信息论 Information Theory 施工中~">     <img class="post_bg" data-lazy-src="https://image.discover304.top/blog-img/s11013909162022.png?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【学习计划】信息论 Information Theory 施工中~"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/03/02/2022q1/146-plan-study-info-theory/" title="【学习计划】信息论 Information Theory 施工中~">【学习计划】信息论 Information Theory 施工中~</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-03-02T10:09:30.000Z" title="Created 2022-03-02 18:09:30">2022-03-02</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%8F%82%E8%80%83/">参考</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E6%A8%A1%E6%9D%BF/">模板</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E4%BF%A1%E6%81%AF%E8%AE%BA/">信息论</a></span></div><div class="content">
学习目标：理解信息论，可以使用通俗易懂的语言说明信息论是什么，有什么作用，以及在哪里用。同时在学习的过程中与之前的相关思想建立连接。
信息论书籍：Information Theory, Inference, and Learning Algorithms
640页，主要是前两部分


作者配套课程：Course on Information Theory, Pattern Recognition, and Neural Networks - VideoLectures - VideoLectures.NET
共16节课，约20小时
推荐计划4天，每天吃透4节课的内容
第五天进行复习


作者资料：Inference Group: Home，David MacKay, born 22 April 1967, died 14 April 2016，卡文迪寻实验室机器学习和信息论方向专家。



:four_leaf_clover:碎碎念:four_leaf_clover:Hello米娜桑，这里是英国留学中的杨丝儿。专注人工智能的情感研究，喜爱物理仿真和可解释性方向，ACGN爱好者。持续高 ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2022/03/01/2022q1/145-%E5%A4%9A%E5%85%83%E9%AB%98%E6%96%AF%E5%88%86%E5%B8%83%E7%9A%84%E7%86%B5/" title="【数学】多元高斯分布的熵">     <img class="post_bg" data-lazy-src="https://image.discover304.top/blog-img/s12001109162022.png?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【数学】多元高斯分布的熵"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/03/01/2022q1/145-%E5%A4%9A%E5%85%83%E9%AB%98%E6%96%AF%E5%88%86%E5%B8%83%E7%9A%84%E7%86%B5/" title="【数学】多元高斯分布的熵">【数学】多元高斯分布的熵</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-03-01T13:18:25.000Z" title="Created 2022-03-01 21:18:25">2022-03-01</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E8%B5%84%E6%96%99/">资料</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%A7%AF%E7%B4%AF/">积累</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%8F%AA%E6%98%AF/">只是</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E6%95%B0%E5%AD%A6/">数学</a></span></div><div class="content">作者: 引线小白-本文永久链接：http://www.limoncc.com/概率论/2017-01-10-多元高斯分布的熵/知识共享许可协议: 本博客采用署名-非商业-禁止演绎4.0国际许可证
一、若干引理1、引理1.01、连续随机向量函数考虑一般情况，我们有随机向量 $\displaystyle \bm{x}\sim f(\bm{x})$。现在有函数 $\displaystyle \bm{y}&#x3D;\bm{g}(\bm{x}):\mathbb{R}^k\mapsto\mathbb{R}^d$。即有：$$\begin{aligned}\bm{y}&#x3D;\bm{g}(\bm{x})\end{aligned}$$若上述方程有唯一解：$$\begin{aligned}\bm{x}&#x3D;\bm{h}(\bm{y})\end{aligned}$$则称函数 $\displaystyle \bm{x}&#x3D;\bm{h}(\bm{y})$是 $\displaystyle \bm{y}&#x3D;\bm{g}(\bm{x})$的反函数。同时我们有雅可比行列式：$$\begin{ ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2022/02/19/2022q1/143-paper-structure/" title="【论文】论文写作结构分析">     <img class="post_bg" data-lazy-src="https://image.discover304.top/miku-king-white-theme.jpg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【论文】论文写作结构分析"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/02/19/2022q1/143-paper-structure/" title="【论文】论文写作结构分析">【论文】论文写作结构分析</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-02-19T05:42:00.000Z" title="Created 2022-02-19 13:42:00">2022-02-19</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Markdown/">Markdown</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%AE%B0%E5%BD%95/">记录</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a></span></div><div class="content">
摘要 Abstract（在阅读60多篇论文的摘要后，总结得到以下的几种结构。）

“起”：这种结构适用于论点的提出，在前人贡献不多的情况下使用。
    开篇介绍本篇论文的贡献。
    列举实验或调查中的发现。
    总结并与过往的相关成果进行对比。

“承”：这种结适用于综述类论文。
    开篇介绍相关领域面临的问题。
    给出过往的技术路线。
    交代文章的目的，一般是整理后分析可行方&gt; 向。

“转”：这种结构适用于应用类型的文章，提出一个过往模型的应用场景。
    开篇介绍领域的背景，一般是以第三人称视角叙述。
    提出文章针对的来自领域内的问题。
    提出文章的观点或解决方案，一般是以摘要的第一个“We”开头。
    汇报实验结论

“合”：这种适用于笔记类论文，主要是引导新人入行。
    （没有固定的摘要格式）
    开篇介绍主要目的，一般是总结前人。



引言 Introduction  结构：大背景、前人研究和出现了的问题和缺点、我的解决方案

相关研究

理论

实验

结论

索引 Reference：reference 是为 ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2022/02/17/2022q1/142-encrypt-post/" title="Hexo博客加密插件">     <img class="post_bg" data-lazy-src="http://image.discover304.top/NEKOYA_S.S.S.%20Doll%20[Pallas].jfif?imageView2/2/h/500" onerror="this.onerror=null;this.src='/img/404.png'" alt="Hexo博客加密插件"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/02/17/2022q1/142-encrypt-post/" title="Hexo博客加密插件">Hexo博客加密插件</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-02-17T03:33:50.000Z" title="Created 2022-02-17 11:33:50">2022-02-17</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E6%8A%80%E6%9C%AF/">技术</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%8F%82%E8%80%83/">参考</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E6%A8%A1%E6%9D%BF/">模板</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%B5%84%E6%96%99/">资料</a></span></div><div class="content">链接：hexo-blog-encrypt
</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2022/02/17/2022q1/141-oc/" title="【自设】白十设定集">     <img class="post_bg" data-lazy-src="http://image.discover304.top/feirenzai_baize_heart.jfif?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【自设】白十设定集"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/02/17/2022q1/141-oc/" title="【自设】白十设定集">【自设】白十设定集</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-02-17T02:52:26.000Z" title="Created 2022-02-17 10:52:26">2022-02-17</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E7%BA%AA%E5%BF%B5/">纪念</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%AE%B0%E5%BD%95/">记录</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%90%88%E4%BD%9C/">合作</a></span></div><div class="content">
  d6b2705594faac2605c03c803e14c00035d10413ea80c31c868d080e9f28814805a992d8cd76654ef8a61d86d5ca38572e2175ea25c2d116f15af811ad2ea80e695ba0cd1adf4059d52e6399fde7c4e9621299b08caf0462177aa51e29deb0e35e0f9e4aaff019a2875309bd928c342f8663b4e863a95745c04720a45e8f3b3bb206aa735f6821fefdda49e1eba482cfdfab7110c9245f47d3c8f7d2a7ff696642616085dde1869480733ca76473e0a0ac6f2589a8b53b097a0d8fcad7942ef4d91b6501b8127c9c51f0b4ce985e136cbbfeae7b9b3d91b02947a2342b5aa159b907f1496bfe1c1f96645ef0e9218f29e37d045f5ebe40255 ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2022/02/17/2021q4/119-slam-math-basic/" title="【SLAM】数学相关记录">     <img class="post_bg" data-lazy-src="https://image.discover304.top/saber_focus_cover.jpg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【SLAM】数学相关记录"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/02/17/2021q4/119-slam-math-basic/" title="【SLAM】数学相关记录">【SLAM】数学相关记录</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-02-17T02:10:31.000Z" title="Created 2022-02-17 10:10:31">2022-02-17</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E7%9F%A5%E8%AF%86/">知识</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E6%95%B0%E5%AD%A6/">数学</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/SLAM/">SLAM</a></span></div><div class="content">
视觉里程计

刚体运动

旋转矩阵

变换矩阵

齐次坐标

角轴 Angle-Axis 也就是李代数 或 旋转向量 Rotation Vector

欧拉角 Euler Angles偏航角yaw，俯仰角pitch，滚转角roll

欧拉角存在万向锁 Gimbal Lock 问题

四元数 Quaternion，三个虚部的扩展复数

旋转矩阵 v.s. 角轴 v.s. 欧拉角 v.s. 四元数

优化：李群、李代数、李括号

李代数就可以求导了

导数模型、扰动模型

小孔成像模型

畸变

非线性优化


</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2022/02/17/2022q1/140-tencent-invitation/" title="【声明】腾讯云博客同步声明">     <img class="post_bg" data-lazy-src="http://image.discover304.top/shenzi_cover.jpg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【声明】腾讯云博客同步声明"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/02/17/2022q1/140-tencent-invitation/" title="【声明】腾讯云博客同步声明">【声明】腾讯云博客同步声明</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-02-17T00:42:27.000Z" title="Created 2022-02-17 08:42:27">2022-02-17</time></span></div><div class="content">我的博客即将同步至腾讯云+社区，邀请大家一同入驻：https://cloud.tencent.com/developer/support-plan?invite_code&#x3D;3552s9i8p6w4k
</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2022/01/24/2022q1/139-docker-dev/" title="【技术】Docker开发 施工中~">     <img class="post_bg" data-lazy-src="http://image.discover304.top/jinaing_robot_future_armar.jpg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【技术】Docker开发 施工中~"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/01/24/2022q1/139-docker-dev/" title="【技术】Docker开发 施工中~">【技术】Docker开发 施工中~</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-01-24T09:29:47.000Z" title="Created 2022-01-24 17:29:47">2022-01-24</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E6%8A%80%E6%9C%AF/">技术</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%8F%82%E8%80%83/">参考</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%B5%84%E6%96%99/">资料</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Docker/">Docker</a></span></div><div class="content">docker 开发很有学习价值
</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2022/01/24/2022q1/138-cuda-prog/" title="【扫盲】Cuda编程 施工中~">     <img class="post_bg" data-lazy-src="http://image.discover304.top/arknight_cp_wolf_cake.jpg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【扫盲】Cuda编程 施工中~"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/01/24/2022q1/138-cuda-prog/" title="【扫盲】Cuda编程 施工中~">【扫盲】Cuda编程 施工中~</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-01-24T03:48:02.000Z" title="Created 2022-01-24 11:48:02">2022-01-24</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E6%8A%80%E6%9C%AF/">技术</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%85%A5%E9%97%A8/">入门</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%9F%A5%E8%AF%86/">知识</a></span></div><div class="content">Clion需要VS2017-2019 inclusive！
使用clion搭建CUDA开发环境_QAQ-程序员ITS201_clion cuda
</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2022/01/24/2022q1/137-plane-proj/" title="【项目实战】ROS Wifi 飞机控制项目（其一） 施工中~">     <img class="post_bg" data-lazy-src="http://image.discover304.top/jiniang_robot_gaoda.jpg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【项目实战】ROS Wifi 飞机控制项目（其一） 施工中~"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/01/24/2022q1/137-plane-proj/" title="【项目实战】ROS Wifi 飞机控制项目（其一） 施工中~">【项目实战】ROS Wifi 飞机控制项目（其一） 施工中~</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-01-24T03:11:27.000Z" title="Created 2022-01-24 11:11:27">2022-01-24</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E6%8A%80%E6%9C%AF/">技术</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%AE%B0%E5%BD%95/">记录</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%B5%84%E6%96%99/">资料</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E6%95%B4%E7%90%86/">整理</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/ROS/">ROS</a></span></div><div class="content">
技术储备：Arduino单片机、ROS机器人框架、网络通信、电子电路、人工智能编程语言：C、Python、C++

从高中开始，笔者就有一个一直期望做的项目：飞机跟随。奈何当年的从知识储备到项目经验都存在不足，没有完成。临近年关，时间充沛，经过了超过3年的准备，我想是时候实现我这个小梦想了。
目标确定
在【TED】闪耀未来光芒的无人机Meet the dazzling flying machines of the futu演讲的第2分钟，提到了一个叫做tail-sitter的飞机，它可以做到像直升机一样悬停和垂直起降，也可以像固定翼一样高效飞行。


这是我期望的飞行器的模式，我希望我的飞机像狗狗一样，灵活的同时又乖乖的。这样的飞行器结构简单，但是他的控制模块采用了强化学习还有很多现代控制理论，需要大量的学习和设计工作。
当然，心急吃不了热豆腐，都拿出来展示的东西，肯定要经过大量的失败的实验才能造出来。这一篇先来制作一台原型机，把信号通信打通，强化学习还有控制的问题之后一点一点增加。
原型机设计因为我们的飞机需要依赖强大的算力支撑，小飞机上的边缘计算已经无法满足需求，所以我们把所有的 ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2022/01/14/2022q1/136-apt-fast-intro/" title="【Linux】apt-Fast 感受闪电般的下载速度吧 施工中~">     <img class="post_bg" data-lazy-src="https://image.discover304.top/lightning_girl.jpg?imageView2/2/h/500" onerror="this.onerror=null;this.src='/img/404.png'" alt="【Linux】apt-Fast 感受闪电般的下载速度吧 施工中~"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/01/14/2022q1/136-apt-fast-intro/" title="【Linux】apt-Fast 感受闪电般的下载速度吧 施工中~">【Linux】apt-Fast 感受闪电般的下载速度吧 施工中~</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-01-14T08:47:03.000Z" title="Created 2022-01-14 16:47:03">2022-01-14</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%8F%82%E8%80%83/">参考</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%B5%84%E6%96%99/">资料</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Linux/">Linux</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a></span></div><div class="content"></div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2022/01/07/2022q1/135-docker-recup/" title="【扫盲】Docker常用命令使用">     <img class="post_bg" data-lazy-src="https://image.discover304.top/docker_illus.jpeg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【扫盲】Docker常用命令使用"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/01/07/2022q1/135-docker-recup/" title="【扫盲】Docker常用命令使用">【扫盲】Docker常用命令使用</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-01-07T06:24:01.000Z" title="Created 2022-01-07 14:24:01">2022-01-07</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E6%8A%80%E6%9C%AF/">技术</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%AE%B0%E5%BD%95/">记录</a></span></div><div class="content">
:four_leaf_clover:碎碎念:four_leaf_clover:Hello米娜桑，这里是英国留学中的杨丝儿。我的博客的关键词集中在算法、机器人、人工智能、数学等等，点个关注吧，持续高质量输出中。:cherry_blossom:唠嗑QQ群：兔叽的魔术工房 (942848525):star:B站账号：杨丝儿今天也在科学修仙（UP主跨站求个关注）


:star2:docker中容器和镜像的关系Docker 包括三个基本概念:

镜像（Image）：Docker 镜像（Image），就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
容器（Container）：镜像（Image）和容器（Container）的关系，就像是面向对象程序设计中的类和实例一样，镜像是静态的定义，容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库（Repository）：仓库可看成一个代码控制中心，用来保存镜像。



:star2:镜像操作12345678910111213#  ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2022/01/06/2022q1/134-autoware-nore/" title="【自动驾驶】AutoWare笔记 施工中~">     <img class="post_bg" data-lazy-src="https://image.discover304.top/autodrive/cover/car_black_white.jpg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【自动驾驶】AutoWare笔记 施工中~"></a></div><div class="recent-post-info"><a class="article-title" href="/2022/01/06/2022q1/134-autoware-nore/" title="【自动驾驶】AutoWare笔记 施工中~">【自动驾驶】AutoWare笔记 施工中~</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2022-01-06T03:04:16.000Z" title="Created 2022-01-06 11:04:16">2022-01-06</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%8F%82%E8%80%83/">参考</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%B5%84%E6%96%99/">资料</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/">人工智能</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E6%9C%BA%E5%99%A8%E4%BA%BA/">机器人</a></span></div><div class="content">安装指令
安装ros-noetic-full
安装显卡驱动
从Source安装：

123456789101112131415mkdir -p autoware.ai/srccd autoware.ai/wget -O autoware.ai.repos &quot;https://raw.githubusercontent.com/Autoware-AI/autoware.ai/1.14.0/autoware.ai.repos&quot;wget -O autoware.ai.repos &quot;https://raw.githubusercontent.com/Autoware-AI/autoware.ai/master/autoware.ai.repos&quot;vcs import src &lt; autoware.ai.reposrosdep update# sudo apt-get install ros-noetic-jsk-recognition-msgs ros-noetic-jsk-rviz-plugins ros-noetic-lanelet2* ros- ...</div></div></div><nav id="pagination"><div class="pagination"><span class="page-number current">1</span><a class="page-number" href="/page/2/">2</a><span class="space">&hellip;</span><a class="page-number" href="/page/9/">9</a><a class="extend next" rel="next" href="/page/2/"><i class="fas fa-chevron-right fa-fw"></i></a></div></nav></div><div class="aside_content" id="aside_content"><div class="card-widget card-info"><div class="card-content"><div class="card-info-avatar is-center"><img class="avatar-img" data-lazy-src="/img/head.jpg" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/><div class="author-info__name">✨YangSier✨</div><div class="author-info__description">Love Everything You Like.</div></div><div class="card-info-data"><div class="card-info-data-item is-center"><a href="/archives/"><div class="headline">Articles</div><div class="length-num">243</div></a></div><div class="card-info-data-item is-center"><a href="/tags/"><div class="headline">Tags</div><div class="length-num">88</div></a></div><div class="card-info-data-item is-center"><a href="/categories/"><div class="headline">Categories</div><div class="length-num">23</div></a></div></div><a class="button--animated" id="card-info-btn" target="_blank" rel="noopener" href="https://space.bilibili.com/98639326"><i class="fab fa-bilibili"></i><span>Bilibili Me</span></a><div class="card-info-social-icons is-center"><a class="social-icon" href="https://github.com/Discover304" target="_blank" title="Github"><i class="fab fa-github"></i></a><a class="social-icon" href="https://blog.csdn.net/Discover304" target="_blank" title="CSDN"><i class="fa-solid fa-c"></i></a><a class="social-icon" href="https://www.zhihu.com/people/discover-56-86-75" target="_blank" title="知乎"><i class="fa-brands fa-zhihu"></i></a><a class="social-icon" href="mailto:hobart.yang@qq.com" target="_blank" title="Email"><i class="fas fa-envelope"></i></a><a class="social-icon" href="https://jq.qq.com/?_wv=1027&amp;k=EaGddTQg" target="_blank" title="QQ"><i class="fa-brands fa-qq"></i></a></div></div></div><div class="card-widget card-announcement"><div class="card-content"><div class="item-headline"><i class="fas fa-bullhorn card-announcement-animation"></i><span>Announcement</span></div><div class="announcement_content">✨动态更新：<p style="text-align:center">享受精彩大学生活中。</p>✨聊天划水QQ群：<p style="text-align:center"><a target="_blank" rel="noopener" href="https://jq.qq.com/?_wv=1027&k=EaGddTQg"><strong>兔叽の魔术工房</strong></a><br>942-848-525</p>✨我们的口号是：<p style="text-align:center; color:#39C5BB">人工降神，机械飞升！</p><a target="_blank" rel="noopener" href='https://space.bilibili.com/98639326'><img src='/img/mikulittletrans.png'></a></div></div></div><div class="sticky_layout"><div class="card-widget card-recent-post"><div class="card-content"><div class="item-headline"><i class="fas fa-history"></i><span>Recent Post</span></div><div class="aside-list"><div class="aside-list-item"><a class="thumbnail" href="/2023/04/24/2023q1/173-nginx-docker-blog-page-depoly/" title="【模板】Hexo Docker Nginx 个人博客服务器部署"><img data-lazy-src="https://image.discover304.top/s16001804242023.png?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【模板】Hexo Docker Nginx 个人博客服务器部署"/></a><div class="content"><a class="title" href="/2023/04/24/2023q1/173-nginx-docker-blog-page-depoly/" title="【模板】Hexo Docker Nginx 个人博客服务器部署">【模板】Hexo Docker Nginx 个人博客服务器部署</a><time datetime="2023-04-24T06:39:24.000Z" title="Created 2023-04-24 14:39:24">2023-04-24</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/2022/12/11/2022q4/172-design-idea/" title="【思考】创新点子"><img data-lazy-src="https://image.discover304.top/blog-img/s19313212112022.png" onerror="this.onerror=null;this.src='/img/404.png'" alt="【思考】创新点子"/></a><div class="content"><a class="title" href="/2022/12/11/2022q4/172-design-idea/" title="【思考】创新点子">【思考】创新点子</a><time datetime="2022-12-11T11:08:37.000Z" title="Created 2022-12-11 19:08:37">2022-12-11</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/2022/12/11/2022q4/171-other-thought/" title="【思考】其他思考"><img data-lazy-src="https://image.discover304.top/blog-img/s19305112112022.png" onerror="this.onerror=null;this.src='/img/404.png'" alt="【思考】其他思考"/></a><div class="content"><a class="title" href="/2022/12/11/2022q4/171-other-thought/" title="【思考】其他思考">【思考】其他思考</a><time datetime="2022-12-11T11:08:17.000Z" title="Created 2022-12-11 19:08:17">2022-12-11</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/2022/12/11/2022q4/170-key-thought/" title="【思考】核心思考"><img data-lazy-src="https://image.discover304.top/blog-img/s19294112112022.png" onerror="this.onerror=null;this.src='/img/404.png'" alt="【思考】核心思考"/></a><div class="content"><a class="title" href="/2022/12/11/2022q4/170-key-thought/" title="【思考】核心思考">【思考】核心思考</a><time datetime="2022-12-11T11:08:06.000Z" title="Created 2022-12-11 19:08:06">2022-12-11</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/2022/12/09/2022q4/169-new-r/" title="R: Getting Into Project of R"><img data-lazy-src="https://image.discover304.top/blog-img/s18350812112022.png" onerror="this.onerror=null;this.src='/img/404.png'" alt="R: Getting Into Project of R"/></a><div class="content"><a class="title" href="/2022/12/09/2022q4/169-new-r/" title="R: Getting Into Project of R">R: Getting Into Project of R</a><time datetime="2022-12-09T09:44:06.000Z" title="Created 2022-12-09 17:44:06">2022-12-09</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/2022/11/28/2022q3/167-2-sp-review/" title="SP Modules Review Contents (3)"><img data-lazy-src="https://image.discover304.top/blog-img/s11220010012022.png?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="SP Modules Review Contents (3)"/></a><div class="content"><a class="title" href="/2022/11/28/2022q3/167-2-sp-review/" title="SP Modules Review Contents (3)">SP Modules Review Contents (3)</a><time datetime="2022-11-28T07:24:39.000Z" title="Created 2022-11-28 15:24:39">2022-11-28</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/2022/11/17/2022q3/166-10-connected-speech-hidden-markov-model/" title="SP Module 10 Connected Speech &amp; HMM Training"><img data-lazy-src="https://image.discover304.top/blog-img/s11220010012022.png?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="SP Module 10 Connected Speech &amp; HMM Training"/></a><div class="content"><a class="title" href="/2022/11/17/2022q3/166-10-connected-speech-hidden-markov-model/" title="SP Module 10 Connected Speech &amp; HMM Training">SP Module 10 Connected Speech &amp; HMM Training</a><time datetime="2022-11-17T01:47:12.000Z" title="Created 2022-11-17 09:47:12">2022-11-17</time></div></div></div></div></div><div class="card-widget card-webinfo"><div class="card-content"><div class="item-headline"><i class="fas fa-chart-line"></i><span>Info</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">Article :</div><div class="item-count">243</div></div><div class="webinfo-item"><div class="item-name">Run time :</div><div class="item-count" id="runtimeshow" data-publishDate="2020-05-21T23:00:00.000Z"></div></div><div class="webinfo-item"><div class="item-name">Total Count :</div><div class="item-count">393.8k</div></div><div class="webinfo-item"><div class="item-name">UV :</div><div class="item-count" id="busuanzi_value_site_uv"></div></div><div class="webinfo-item"><div class="item-name">Last Push :</div><div class="item-count" id="last-push-date" data-lastPushDate="2023-04-25T11:02:55.530Z"></div></div></div></div></div></div></div></main><footer id="footer" style="background-image: url(https://image.discover304.top/wallpaper/anime-anime-girls-original-characters-short-hair-wallpaper-preview.jpg?imageView2/2/h/600)"><div id="footer-wrap"><div class="copyright">&copy;2020 - 2023 By ✨YangSier✨</div><div><a target="_blank" href="https://beian.miit.gov.cn/" style="display:inline-block;text-decoration:none;height:20px;line-height:20px;"><p style="float:left;height:20px;line-height:20px;margin: 0px 0px 0px 5px; color:#939393;"> 冀ICP备2021025381号-1</p></a></div><div><a target="_blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=13060602001430" style="display:inline-block;text-decoration:none;height:20px;line-height:20px;"><img src="/img/beian.png" style="float:left;"/><p style="float:left;height:20px;line-height:20px;margin: 0px 0px 0px 5px; color:#939393;">冀公网安备 13060602001430号</p></a></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="translateLink" type="button" title="Switch Between Traditional Chinese And Simplified Chinese">繁</button><button id="darkmode" type="button" title="Switch Between Light And Dark Mode"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="Toggle between single-column and double-column"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="Setting"><i class="fas fa-cog fa-spin"></i></button><button id="go-up" type="button" title="Back To Top"><i class="fas fa-arrow-up"></i></button></div></div><div id="local-search"><div class="search-dialog"><div class="search-dialog__title" id="local-search-title">Local search</div><div id="local-input-panel"><div id="local-search-input"><div class="local-search-box"><input class="local-search-box--input" placeholder="Search for Posts" type="text"/></div></div></div><hr/><div id="local-search-results"></div><span class="search-close-button"><i class="fas fa-times"></i></span></div><div id="search-mask"></div></div><div><script src="/js/utils.js"></script><script src="/js/main.js"></script><script src="/js/tw_cn.js"></script><script src="https://cdn.jsdelivr.net/npm/instant.page/instantpage.min.js" type="module"></script><script src="https://cdn.jsdelivr.net/npm/vanilla-lazyload/dist/lazyload.iife.min.js"></script><script src="https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.js"></script><script>function panguFn () {
  if (typeof pangu === 'object') pangu.spacingElementById('content-inner')
  else {
    getScript('https://cdn.jsdelivr.net/npm/pangu/dist/browser/pangu.min.js')
      .then(() => {
        pangu.spacingElementById('content-inner')
      })
  }
}

function panguInit () {
  if (false){
    GLOBAL_CONFIG_SITE.isPost && panguFn()
  } else {
    panguFn()
  }
}

document.addEventListener('DOMContentLoaded', panguInit)</script><script src="/js/search/local-search.js"></script><script>var preloader = {
  endLoading: () => {
    document.body.style.overflow = 'auto';
    document.getElementById('loading-box').classList.add("loaded")
  },
  initLoading: () => {
    document.body.style.overflow = '';
    document.getElementById('loading-box').classList.remove("loaded")

  }
}
window.addEventListener('load',()=> {preloader.endLoading()})</script><div class="js-pjax"><script>function subtitleType () {
  if (true) { 
    var typed = new Typed("#subtitle", {
      strings: "Space of Tech and Love.,但行好事，莫问前程。,['happy' for _ in range(365)],一切都是最好的安排，无怨无悔。".split(","),
      startDelay: 300,
      typeSpeed: 150,
      loop: true,
      backSpeed: 50
    })
  } else {
    document.getElementById("subtitle").innerHTML = 'Space of Tech and Love.'
  }
}

if (true) {
  if (typeof Typed === 'function') {
    subtitleType()
  } else {
    getScript('https://cdn.jsdelivr.net/npm/typed.js/lib/typed.min.js').then(subtitleType)
  }
} else {
  subtitleType()
}</script><script>if (document.getElementsByClassName('mermaid').length) {
  if (window.mermaidJsLoad) mermaid.init()
  else {
    getScript('https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js').then(() => {
      window.mermaidJsLoad = true
      mermaid.initialize({
        theme: 'neutral',
      })
      false && mermaid.init()
    })
  }
}</script><script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script></div><script defer="defer" id="fluttering_ribbon" mobile="true" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/canvas-fluttering-ribbon.min.js"></script><script>(function(){
  const bp = document.createElement('script');
  const curProtocol = window.location.protocol.split(':')[0];
  if (curProtocol === 'https') {
    bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
  }
  else{
    bp.src = 'http://push.zhanzhang.baidu.com/push.js';
  }
  bp.dataset.pjax = ''
  const s = document.getElementsByTagName("script")[0];
  s.parentNode.insertBefore(bp, s);
})()</script></div></body></html>